const mappingsTable = require('@/utils/dataMap')
const mappingsTools = require('@/utils/mapTools')
const modalUtils = require('./modalUtils') // 弹窗的工具混入
const mixinTable = require('./table') // 表格的混入
const timeStandrd = require('@/utils/moment')

module.exports = {
  mixins: [modalUtils, mixinTable],
  data() {
    return {
      showMore: false,
      totalCounts: [] // 不同状态下的总数
    }
  },
  created() {
    this.initTitleCard()
  },
  methods: {
    // 初始化卡片的标题
    initTitleCard() {
      const { meta } = this.$route
      this.sideOpen = meta.title.split(',')
      const title = this.sideOpen.slice(-1)[0]
      this.titleCard = title
    },
    // 处理数据中存在需要转换的值
    handlerResultMappings(result) {
      const v = result || []
      mappingsTools.dealResult2Map(v, mappingsTable.v2Label)
    },
    // 表单自定义按钮的回调处理
    btnHandler({ cb }) {
      if(this[cb]){
        this[cb]()  // 执行回调
      }
    },
    // 处理日期格式
    handlerDateFormat(list) {
      list.forEach(item => {
        // 处理时间格式，覆盖原始接口返回的参数
        item.createTime = timeStandrd.timeStandrd(item.createTime)
        item.publishTime = timeStandrd.timeStandrd(item.publishTime)
      })
      return list
    },
    // 表格的部分共同逻辑（运营管理，需求管理）
    async getTotalCount(api) {
      try {
        const {
          data
        } = await api()
        this.totalCounts = data
      } catch (error) {
        console.log(error);
      }
    }
  }
}
